package com.zsc.wxapp.services;

import com.github.pagehelper.PageInfo;
import com.zsc.wxapp.entity.IPriceTag;
import com.zsc.wxapp.entity.dto.PriceTagDTO;
import com.zsc.wxapp.entity.dto.SubmitTaskDTO;
import com.zsc.wxapp.entity.external.PriceNameData;
import com.zsc.wxapp.entity.external.ProductDetails;
import com.zsc.wxapp.entity.external.PriceOverview;
import com.zsc.wxapp.entity.vo.CustomerVO;
import com.zsc.wxapp.entity.vo.PriceTagVO;
import com.zsc.wxapp.entity.vo.ProfitAnalysisVO;

import java.util.List;

public interface PriceTagService {
//    Map<String, Object> User_WX_Upload(MultipartFile file, String uerid);

    public List<IPriceTag> findAll();

    public int insert(IPriceTag priceTag);

    public int deleteById(String id);

//    public int update(PriceTag priceTag);

//    String upload(MultipartFile file);

    public List<PriceOverview> updateProductUserRetailPrice(List<PriceOverview> productList);

    public List<PriceOverview> getPriceOverview();

    public List<PriceNameData> getPriceData(String productUuid);

    public List<ProductDetails> getProductDetails(String productUuid);

    /**
     * 添加价签数据
     * @param priceTagDTOs 价签数据列表
     * @param userId 用户id
     */
    void addPriceTags(List<PriceTagDTO> priceTagDTOs, Long userId);

    /**
     * 根据用户id获取价签数据
     * @return
     */
    List<PriceTagVO> getPriceTagsByUserId(Long userId);

    /**
     终端用户盈利分析终端用户盈利分析
     * @param userId
     * @return ProfitAnalysisVO
     */
    ProfitAnalysisVO profitAnalysis(Long userId);

    /**
     * 根据价签id修改价签数据
     * @param priceTagDTO
     */
    void updatePriceTag(PriceTagDTO priceTagDTO);

    /**
     * C端用户提交任务到B端用户
     * @param submitTaskDTO
     */
    void submitTask(SubmitTaskDTO submitTaskDTO);

    /**
     * 根据卷烟名称搜索价签信息
     * @param name 卷烟名称
     * @return List
     */
    List<PriceTagVO> searchPriceTagByName(Long userId, String name);

    /**
     * 批量删除价签数据
     * @param ids 价签ids
     */
    void deleteByIds(List<PriceTagDTO> priceTagDTOs);

    /**
     * 根据id获取价签信息
     * @param id
     * @return
     */
    PriceTagVO getPriceTagById(Long id);

    /**
     * 获取B端客户经理管理的所有零售用户
     * @return List
     */
    List<CustomerVO> getCustomers();

    /**
     * 分页查询用户
     * @return
     */
    PageInfo pageGetCustomers(Integer pageNum);
}
